package com.esteel.settlement.pa.packet;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;

/**
 * 请求包：交易网－> 监管系统 交易网发起 平台收费与退费 zhouwentong
 */
@XmlRootElement(name = "Result")
@XmlAccessorType(XmlAccessType.FIELD)
public class PlatformChargeRefundPB1030 extends PaPacket {

	private static final long serialVersionUID = -3394217324629315092L;
	
	public static int HANDFEEIN=1;//平台收手续费
	public static int HANDFEEOUT=2;//平台退手续费
	public static int HANDFEEFREEZEIN=3;//平台收冻结账户手续费
	
	// 资金汇总账号
	@XmlElement(name = "SupAcctId")
	@Length(max = 32)
	@NotEmpty
	private String supAcctId;
	// 功能标志 1：收费 2：退费 3:冻结收费
	@XmlElement(name = "FuncFlag")
	private int funcFlag;
	// 子账户
	@XmlElement(name = "CustAcctId")
	@Length(max = 32)
	@NotEmpty
	private String custAcctId;
	// 会员代码
	@XmlElement(name = "ThirdCustId")
	@Length(max = 32)
	@NotEmpty
	private String thirdCustId;
	// 交易金额
	@XmlElement(name = "TranAmount")
	private double tranAmount;
	// 币种 默认：RMB
	@XmlElement(name = "CcyCode")
	@Length(max = 3)
	@NotEmpty
	private String ccyCode;

	@XmlElement(name = "ThirdHtId")
	@Length(max = 30)
	@NotEmpty
	private String thirdHtId;
	// 备注
	@XmlElement(name = "Note")
	@Length(max = 120)
	private String note;

	@Override
	protected String tranFunc(){
		return "1030";
	}
	
	public String getSupAcctId() {
		return supAcctId;
	}

	public int getFuncFlag() {
		return funcFlag;
	}

	public String getCustAcctId() {
		return custAcctId;
	}

	public String getThirdCustId() {
		return thirdCustId;
	}

	public double getTranAmount() {
		return tranAmount;
	}

	public String getCcyCode() {
		return ccyCode;
	}

	public String getThirdHtId() {
		return thirdHtId;
	}

	public String getNote() {
		return note;
	}

	public void setSupAcctId(String supAcctId) {
		this.supAcctId = supAcctId;
	}

	public void setFuncFlag(int funcFlag) {
		this.funcFlag = funcFlag;
	}

	public void setCustAcctId(String custAcctId) {
		this.custAcctId = custAcctId;
	}

	public void setThirdCustId(String thirdCustId) {
		this.thirdCustId = thirdCustId;
	}

	public void setTranAmount(double tranAmount) {
		this.tranAmount = tranAmount;
	}

	public void setCcyCode(String ccyCode) {
		this.ccyCode = ccyCode;
	}

	public void setThirdHtId(String thirdHtId) {
		this.thirdHtId = thirdHtId;
	}

	public void setNote(String note) {
		this.note = note;
	}

	@Override
	protected String[] order() {
		String[] objs = { "supAcctId", "funcFlag", "custAcctId", "thirdCustId", "tranAmount", "ccyCode", "thirdHtId", "note", "reserve" };
		return objs;
	}
}
